const decipher = require("./src/app");
const inquirer  = require('inquirer');
const fs = require('fs');
const path = require('path');

main()
function main(){
  const files = getExcelFileName()
  if(files){
    if(files.length === 0){
      console.log("请检查文件夹【excel】下是否有excel文件")
      return
    } else if(files.length === 1){
      return decipher(files[0])
    } else {
      return selectExcelFile(files).then(file => {
        doDecipher(file)
      })
    }
  }
}

function doDecipher(fileName){
  const file = path.join(__dirname, `./excel/${fileName}`);
  decipher(file)
}

// 获取excel文件名
function getExcelFileName(){
  const url = path.join(__dirname, 'excel')
  try {
    fs.accessSync(url)
    const files = fs.readdirSync(url)
    return files.filter((file)=>{
      // 仅支持 xlsx 后缀的文件
      return /\.xlsx/.test(path.extname(file))
    })
  } catch (error) {
    console.log('【excel】目录不存在')
  }
}

// 让用户在多个文件中选一个作为破解密码的文件
function selectExcelFile(files){
  const f = files.map((file)=>({name: file, value: file}))

  return inquirer.prompt([{
    type: 'list',
    name: 'A',
    message: '请选择一个要解密的excel文件',
    choices: f
  }])
    .then((answers) => {
      return answers.A
    })
    .catch((error) => {
      console.error(error)
    });
}
